<?php
/**
 *  * 系统-受国家计算机软件著作权保护 - !
 * =========================================================
 * Copy right 2018-2025 成都海之心科技有限公司, 保留所有权利。
 * ----------------------------------------------
 * 官方网址: http://www.ohyu.cn
 * 这不是一个自由软件！在未得到官方有效许可的前提下禁止对程序代码进行修改和使用。
 * 任何企业和个人不允许对程序代码以任何形式任何目的再发布。
 * =========================================================
 * name: 消息管理 站内信模块  
 * User: ohyueo
 * Date: 2021/7/6
 * Time: 10:34
 */

namespace app\api\controller;

use app\api\models\EscortMessage;
use app\api\models\EscortMessageText;
use app\api\models\EscortSysmessage;
use app\BaseController;
use think\facade\Db;
use Yansongda\Pay\Pay;


class Message extends BaseController
{
    //未读数量
    public function messagenum()
    {
        $user = $this->user();//用户信息
        if(!$user){
            return $this->message('重新登录', [], 201);
        }
        $uid=$user->id;
        $weidu=0;
        //先查询是否有他的专属消息
        $zs=EscortMessage::countData(['where'=>['recid'=>$uid,'status'=>0]]);
        if($zs>0){
            //有
            $message=$zs;
        }else{
            //没有
            $message=0;
        }
        //查询系统消息
        $zs=EscortMessage::findAllData(['where'=>['recid'=>0],'field'=>'*','isarr'=>true]);
        $sysmessage=0;
        if($zs && 1==2){ //这里系统消息  不设已读未读  也不用读取
            for($i=0;$i<count($zs);$i++){
                //比对是否已读
                $ud=EscortSysmessage::findData(['where'=>['textid'=>$zs[$i]['textid'],'uid'=>$uid]]);
                if($ud && !$ud['sysstatus']){
                    $sysmessage=$sysmessage+1;
                }else if(!$ud){
                    //没有就加入进去
                    $arr = array(
                        'uid'=>$uid,
                        'textid'=> $zs[$i]['textid'],
                        'sysstatus' => 0
                    );
                    EscortSysmessage::addData($arr);
                    $sysmessage=$sysmessage+1;
                }
            }
        }
        $weidu=$message+$sysmessage;
        $arr=[
            'weidu'=>$weidu,
        ];
        return $this->message('请求成功', $arr);
    }
    //消息列表
	public function messageindex(){
		$user = $this->user();//用户信息
        if(!$user){
            return $this->message('重新登录', [], 201);
        }
        $uid=$user->id;
		$data1=array();
		$data2=array();
		$weidu=0;
		//先查询是否有他的专属消息
        $zs=EscortMessage::countData(['where'=>['recid'=>$uid,'status'=>0]]);
		if($zs>0){
			//有
			$message=$zs;
		}else{
			//没有
			$message=0;
		}
		//查询消息  ->where('RecId','0')
        $zs=EscortMessage::findAllData(['where'=>['recid'=>$uid],'order'=>['id'=>'desc'],'limit'=>20,'isarr'=>true,'field'=>'*']);
		$sysmessage=0;
		if($zs){
			for($i=0;$i<count($zs);$i++){
				if(!$zs[$i]['recid']){
					$zs[$i]['pv']=1;
					//比对是否已读
                    $ud=EscortSysmessage::findData(['where'=>['textid'=>$zs[$i]['textid'],'uid'=>$uid]]);
					if($ud && !$ud['SysStatus']){
						$zs[$i]['pv']=0;
					}else if(!$ud){
						//没有就加入进去
						$arr = array(
							'uid'=>$uid,
							'textid'=> $zs[$i]['textid'],
							'sysstatus' => 0
						);
                        EscortSysmessage::addData($arr);
						$zs[$i]['pv']=0;
					}
				}else{
					if($zs[$i]['status']){
						$zs[$i]['pv']=1;
					}else{
						$zs[$i]['pv']=0;
					}
				}
				//查询名称id和时间
                $r=EscortMessageText::findData(['where'=>['id'=>$zs[$i]['textid']]]);
				$zs[$i]['title']=$r['title'];
				$zs[$i]['addtime']=date('Y-m-d H:i:s',$r['addtime']);
			}
		}
        return $this->message('请求成功', $zs);
	}
	
	public function msginfo(){
		$user = $this->user();//用户信息
        if(!$user){
            return $this->message('重新登录', [], 201);
        }
        $uid=$user->id;
		//站内信
		$id=input("param.id");
		if(!$id){
            return $this->message('id错误', [],0);
		}
        //查询
        $zsdata=EscortMessage::findData(['where'=>['id'=>$id]]);
        if($zsdata){
            $TextId=$zsdata['textid'];
            if(!$zsdata['recid']){
                //查询是否已读
                EscortSysmessage::updatesData(['where'=>['textid'=>$TextId,'uid'=>$uid]],['sysstatus'=>1]);
            }else{
                EscortMessage::updatesData(['where'=>['id'=>$id,'recid'=>$uid]],['status'=>1]);
            }
            $zs=EscortMessageText::findData(['where'=>['id'=>$TextId]]);
            $zs['addtime']=date('Y-m-d H:i:s',$zs['addtime']);
            $zs['text']=htmlspecialchars_decode($zs['text']);
            $zs['txt']=htmlspecialchars_decode($zs['text']);
            return $this->message('请求成功', $zs);
        }else{
            return $this->message('错误', [],0);
        }
	}
}